package com.robot.dao.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.robot.common.enums.*;
import com.robot.dao.dto.BasicInfoDTO;
import com.robot.dao.dto.CreateRobotResultDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.List;
import com.robot.dao.dto.PromptTemplateInfo;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
@TableName(value = "robot", autoResultMap = true)
public class Robot implements Serializable {
    @TableField(value = "id")
    @TableId(type = IdType.AUTO)
    private Long id;
    @TableField(value = "company_code")
    private String companyCode;
    @TableField(value = "robot_name")
    private String robotName;
    @TableField(value = "robot_url")
    private String robotUrl;
    @TableField(value = "robot_description")
    private String robotDescription;
    @TableField(value = "character_design")
    private String characterDesign;

    @TableField(value = "robot_scan_permission_type")
    private Integer RobotScanPermissionType;

    @TableField(value = "can_edit_type")
    private Integer canEditType;

    @TableField(value = "category_name")
    private String categoryName;

    @TableField(value = "user_id")
    private Long userId;
    @TableField(value = "is_delete")
    private Boolean isDelete;

    @TableField(value = "is_need_web_searching")
    private Boolean isNeedWebSearching;

    @TableField(value = "robot_heat")
    private Integer robotHeat;
    @TableField(value = "robot_heat_stars")
    private Integer robotHeatStars;
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    private Long viewTimes=0L;

    @TableField(value = "prologue")
    private String prologue;
    @TableField(value = "prompt_template_info")
    private String prompt_template_info;
}